package com.qckj.amz.utils.enums;

import java.util.HashMap;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors;
import java.util.stream.Stream;

/**
 * 产品状态
 *
 * 百度翻译代码
 *
 * 国家代码
 *
 * 注：切记code值不能重复，否则报错提示：Caused by: java.lang.IllegalStateException: Duplicate key PRODUCT_STATUS_INFRINGING_....
 */
public enum EnumTranslateBaiduCode {

    BAIDU_LANGUAGECODE_CN("CN", "zh"),//中文
    BAIDU_LANGUAGECODE_UK("UK", "en"),//英国、美国、加拿大、新加坡、澳大利亚
    BAIDU_LANGUAGECODE_US("US", "en"),//英国、美国、加拿大、新加坡、澳大利亚
    BAIDU_LANGUAGECODE_CA("CA", "en"),//英国、美国、加拿大、新加坡、澳大利亚
    BAIDU_LANGUAGECODE_SG("SG", "en"),//英国、美国、加拿大、新加坡、澳大利亚
    BAIDU_LANGUAGECODE_AU("AU", "en"),//英国、美国、加拿大、新加坡、澳大利亚
    BAIDU_LANGUAGECODE_IN("IN", "en"),//印度- 百度翻译hi失败，报错58001译文语言方向不支持印地语hi--印度人官方的语言是印地语,第二语言是英语。
    BAIDU_LANGUAGECODE_FR("FR", "fra"),//法国
    BAIDU_LANGUAGECODE_DE("DE", "de"),//德国
    BAIDU_LANGUAGECODE_IT("IT", "it"),//意大利
    BAIDU_LANGUAGECODE_ES("ES", "spa"),//西班牙语
    BAIDU_LANGUAGECODE_MX("MX", "spa"),//墨西哥官方语言是西班牙语
    BAIDU_LANGUAGECODE_NL("NL", "nl"),//荷兰
    BAIDU_LANGUAGECODE_SE("SE", "swe"),//瑞典
    BAIDU_LANGUAGECODE_PL("PL", "pl"),//波兰
    BAIDU_LANGUAGECODE_TR("TR", "tr"),//土耳其-百度翻译tr失败，报错58001译文语言方向不支持土耳其tr
    BAIDU_LANGUAGECODE_JP("JP", "jp"),//日本

    ;

    private String code;
    private String desc;

    EnumTranslateBaiduCode(String code, String desc) {
        this.code = code;
        this.desc = desc;
    }

    public String getCode() {
        return code;
    }

    public String getDesc() {
        return desc;
    }

    private static final Map<String, EnumTranslateBaiduCode> ENUM_MAP = new HashMap<>();

    static {
        ENUM_MAP.putAll(Stream.of(EnumTranslateBaiduCode.values()).collect(Collectors.toMap(EnumTranslateBaiduCode::getCode, e -> e)));
    }

    public static String getDesc(String code) {
        return Optional.of(ENUM_MAP.get(code)).map(EnumTranslateBaiduCode::getDesc).orElse("");
    }

}
